package com.luxsoft.siipap.model.core;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;


import com.luxsoft.siipap.model.BaseBean;
import com.luxsoft.sw3.replica.Replicable;

@Entity
@Table(name="SX_SOCIOS")
public class Socio extends BaseBean implements Replicable{
	
	@Id
	private String clave;
	
	private String nombre;
	
	private int vendedor;
	
	private String lugar;
	
	private double socbacoco;
	
	private double socbacove;

	public String getClave() {
		return clave;
	}

	public void setClave(String clave) {
		this.clave = clave;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public int getVendedor() {
		return vendedor;
	}

	public void setVendedor(int vendedor) {
		this.vendedor = vendedor;
	}

	public String getLugar() {
		return lugar;
	}

	public void setLugar(String lugar) {
		this.lugar = lugar;
	}

	public double getSocbacoco() {
		return socbacoco;
	}

	public void setSocbacoco(double socbacoco) {
		this.socbacoco = socbacoco;
	}

	public double getSocbacove() {
		return socbacove;
	}

	public void setSocbacove(double socbacove) {
		this.socbacove = socbacove;
	}

	@Override
	public int hashCode() {
		return new HashCodeBuilder(17,35)
		.append(getClave())
		.toHashCode();
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (getClass() != obj.getClass())
			return false;
		Socio other = (Socio) obj;
		return new EqualsBuilder()
		.append(this.clave, other.getClave())
		.isEquals();
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this,ToStringStyle.SHORT_PREFIX_STYLE);
	}
	
	

	@Column(name="TX_IMPORTADO",nullable=true)
	protected Date importado;
	
	@Column(name="TX_REPLICADO",nullable=true)
	protected Date replicado;

	public Date getImportado() {
		return importado;
	}

	public void setImportado(Date importado) {
		this.importado = importado;
	}

	public Date getReplicado() {
		return replicado;
	}

	public void setReplicado(Date replicado) {
		this.replicado = replicado;
	}
}
